/*
    日志消息类模块，进行日志中间信息的存储：
        1、日志的输出时间   (用于过滤日志输出时间)
        2、日志等级         （用于进行日志过滤分析）
        3、源文件名称
        4、源文件代码行号   （用于定位出多的代码位置）
        5、线程ID       （用于过滤出错的线程）
        6、日志主体信息
        7、日志器名称   （当前支持多日志器同时使用）
*/

#ifndef _M_MESSAGE_H__
#define _M_MESSAGE_H__

#include"util.hpp"
#include"Level.hpp"
#include<thread>

namespace Hxy_Log
{
    struct LogMsg
    {
        time_t _ctime;  //时间
        LogLevel::value _value; //日志等级
        std::string _file;  //文件名称
        size_t _line;   //代码行号
        std::thread::id _tid;  //线程id
        std::string _payload;  //日志信息
        std::string _name;  //日志器名称

        LogMsg(){}
        LogMsg(
            LogLevel::value value,
            std::string file,
            size_t line,
            std::string payload,
            std::string name)
            :_ctime(util::date::GetTime())
            ,_value(value)
            ,_file(file)
            ,_line(line)
            ,_tid(std::this_thread::get_id())
            ,_payload(payload)
            ,_name(name)
            {}

    };

}
#endif